package com.softeem.ossmusic.controller;

import com.softeem.ossmusic.comm.QiniuOssUtils;
import com.softeem.ossmusic.comm.R;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;


/**
 * 文件上传统一控制器
 */
@Tag(name="文件管理",description = "针对系统中所有涉及到文件上传的模块提供统一的上传接口")
@RestController
public class FileController {

    @Operation(summary = "文件上传",description = "上传文件")
    @PostMapping("/file/upload")
    public R upload(MultipartFile file) throws IOException {
        //获取原始的文件名
        String key = file.getOriginalFilename();
        //获取文件的输入流对象
        InputStream is = file.getInputStream();

        //获取文件名最后一个"."的位置   qilixiang.mp3
        int i = key.lastIndexOf(".");
        //获取文件后缀名
        String suffix = key.substring(i+1);
        //对文件重命名
        key = UUID.randomUUID().toString() + "." + suffix;

        //创建七牛云存储对象
        QiniuOssUtils utils = new QiniuOssUtils();
        //上传文件
        String url = utils.upload(is,key);
        //返回结果
        return R.success().setData(url);
    }
}
